package br.com.foxinline.manager.acao;

import br.com.foxinline.enums.TipoPessoa;
import br.com.foxinline.modelo.Imovel;
import br.com.foxinline.modelo.Pessoa;
import br.com.foxinline.servico.ImovelServico;
import br.com.foxinline.utilitario.Mensagem;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

/**
 *
 * @author cadomeireles
 */
@ViewScoped
@ManagedBean
public class ManagerEmitirCertidaoPositiva implements Serializable {

    @EJB
    ImovelServico imovelServico;
    private Pessoa cliente;
    private List<Imovel> imoveis;
    private List<Imovel> imoveisSelecionados;

    @PostConstruct
    public void init() {
        instanciar();
    }

    private void instanciar() {
        this.cliente = new Pessoa();
        this.cliente.setTipoPessoa(TipoPessoa.FISICA);
        this.imoveis = new ArrayList<Imovel>();
        this.imoveisSelecionados = new ArrayList<Imovel>();
    }

    public void pesquisar() {
        this.imoveis = imovelServico.imoveisPertencentes(this.cliente);

        if (imoveis.isEmpty()) {
            Mensagem.messagemWarn("Esse cliente não possui imóveis matriculados.");
        }
    }
    
    public void emitirCertidao() {
        if (!this.imoveisSelecionados.isEmpty()) {
            imovelServico.emitirCertidaoPositiva(this.imoveisSelecionados);
        }
    }
    
    public void limpar() {
        instanciar();
    }

    public Pessoa getCliente() {
        return cliente;
    }

    public void setCliente(Pessoa cliente) {
        this.cliente = cliente;
    }

    public List<Imovel> getImoveis() {
        return imoveis;
    }

    public void setImoveis(List<Imovel> imoveis) {
        this.imoveis = imoveis;
    }

    public List<Imovel> getImoveisSelecionados() {
        return imoveisSelecionados;
    }

    public void setImoveisSelecionados(List<Imovel> imoveisSelecionados) {
        this.imoveisSelecionados = imoveisSelecionados;
    }
}
